module mConstants

        use mPrecision
        implicit none

        real(D), parameter :: C = 299792458.0_D, & ! Speed of light in m/s, NIST
!               Pi to ludicrous precision (even more than necessary for quad
!               precision) complements of the CRC:
                PI = 3.14159265358979323846264338327950288419716939937511_D, &
!DEREK---check this:
                E = 2.71828182845904523536028747135266249775724709369996_D
!       The gravitational constant in m**3/(kg*s**2):
        real(D), parameter :: G = 6.6726e-11_D
        real(D), parameter :: ONE_THIRD = 1.0_D / 3.0_D
        real(D), parameter :: FOUR_PI_OVER_3 = 4.0_D * PI / 3.0_D
!       Conversion factors:
        real(D), parameter :: M_KM = 1e3_D, &
                              G_KG = 1e3_D, &
                              M_MPC = 3.0856e22_D, &
                              G_M_SUN = 1.989e33_D, &
                              DEGREES2_SKY = 4.0_D * PI &
                                   * ( 360.0_D / (2.0_D * PI ) ) ** 2, &
                              ARCMIN2_SR = ( 360.0_D * 60.0_D &
                                             / (2.0_D * PI) ) ** 2


        ! Survey Data:
        real(D), parameter :: SNAP_WIDE_FRAC_SKY =  1000.0_D / DEGREES2_SKY, &
                              SNAP_WIDE_GALAXY_DENSITY = 100.0_D

        public

end module mConstants
